package edu.gdpu.memory.stack;

import java.util.Map;

/**
 * @author mazebin
 * @date 2021年 07月15日 11:43:29
 *  * 下面的代码相当于jstack命令的大部分功能
 *  * jstack用于生成虚拟机当前时刻的快照
 */
public class StackInfoTest {
    public static void main(String[] args) {
        for (Map.Entry<Thread,StackTraceElement[]> stackTrace:Thread.getAllStackTraces().entrySet()) {
            Thread thread = stackTrace.getKey();
            StackTraceElement[] traceElement = stackTrace.getValue();
            if(Thread.currentThread().equals(thread)){
                continue;
            }
            System.out.println("线程名："+thread.getName());
            for (StackTraceElement stackTraceElement : traceElement) {
                System.out.println("\t"+stackTraceElement+"\n");
            }
        }
    }
}
